package com.tjbank.cssys.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import com.tjbank.cssys.web.config.GetUserCodeFromToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.tjbank.cssys.framework.base.api.BaseController;
import com.tjbank.cssys.framework.base.api.Response;
import com.tjbank.cssys.api.MenuService;
import com.tjbank.cssys.dto.MenuDTO;

import java.util.Date;
import java.util.UUID;

/**
 * 菜单
 * 
 * Package : com.tansun.magicube.iam.web.controller
 * 
 * @author -- lijiangtao 2020年5月22日 下午2:08:44
 *
 */
@RestController
public class MenuController extends BaseController {

	@Autowired
	private MenuService menuService;

	private final static  Logger logger = LoggerFactory.getLogger(MenuController.class);
	/**
	 * 新增
	 * 
	 * @param menuDTO
	 * @return
	 * @author -- lijiangtao 2020年5月22日 下午12:24:02
	 */
	@PostMapping("/menu")
	public Response<?> addMenu(@RequestBody @Valid MenuDTO menuDTO , HttpServletRequest request) {





		return this.success(menuService.addMenu(menuDTO));
	}

	/**
	 * 查询
	 * 
	 * @return
	 * @author -- lijiangtao 2020年5月7日 下午2:12:04
	 */
	@GetMapping("/menu")
	public Response<?> menuTreeList(MenuDTO menuDTO , HttpServletRequest request) {



		return this.success(menuService.menuTreeList(menuDTO));
	}

	/**
	 * 删除
	 * 
	 * @param menuId
	 * @return
	 * @author -- lijiangtao 2020年5月9日 下午4:58:47
	 */
	@DeleteMapping("/menu/{menuId}")
	public Response<?> deleteUser(@PathVariable String menuId ,HttpServletRequest request) {





		return this.success(menuService.deleteMenu(menuId));
	}

	/**
	 * 编辑
	 * 
	 * @param menuDTO
	 * @return
	 * @author -- lijiangtao 2020年6月21日 下午7:34:03
	 */
	@PutMapping("/menu")
	public Response<?> updateMenu(@RequestBody @Valid MenuDTO menuDTO ,HttpServletRequest request) {


		return this.success(menuService.updateMenu(menuDTO));
	}
}
